<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>1089. 复写零</title>
  </head>
  <body>
    <script>
      //     给你一个长度固定的整数数组 arr，请你将该数组中出现的每个零都复写一遍，并将其余的元素向右平移。

      // 注意：请不要在超过该数组长度的位置写入元素。

      // 要求：请对输入的数组 就地 进行上述修改，不要从函数返回任何东西。

      //

      // 示例 1：

      // 输入：[1,0,2,3,0,4,5,0]
      // 输出：null
      // 解释：调用函数后，输入的数组将被修改为：[1,0,0,2,3,0,0,4]
      // 示例 2：

      // 输入：[1,2,3]
      // 输出：null
      // 解释：调用函数后，输入的数组将被修改为：[1,2,3]

      // 来源：力扣（LeetCode）
      // 链接：https://leetcode.cn/problems/duplicate-zeros
      // 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

      /**
       * @param {number[]} arr
       * @return {void} Do not return anything, modify arr in-place instead.
       */
      var duplicateZeros = function (arr) {
        const len = arr.length
        for (let i = 0; i < len; i++) {
          if (arr[i] === 0) {
            arr.splice(i, 0, 0)
            arr.splice(-1, 1)
            i++
          }
        }
      }
      const arr = [1, 0, 2, 3, 0, 4, 5, 0]
      duplicateZeros(arr)
      console.log(arr)
    </script>
  </body>
</html>
